home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / c_lib01.arc / DISPIO.DOC < prev    next >
Text File  |  1985-10-16  |  30KB  |  885 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                                          C MANUAL
  8.  
  9.           RUN TIME AND I/O LIBRARY SECTION
  10.  
  11.  
  12.  
  13.  
  14.           NAME
  15.  
  16.                clrscr, d_erasel, d_ereol, d_nextc, d_nextl, d_putc, d_puts
  17.                                         - clear screen, erase line, erase
  18.                                         end of line, advance cursor,
  19.                                         write character and string to
  20.                                         screen
  21.  
  22.           SYNOPSIS
  23.  
  24.                clrscr();                Clear the current window.  Set the
  25.                                         cursor in the upper left hand
  26.                                         corner. 
  27.  
  28.                d_erasel();              Erase the line the cursor is on. 
  29.                                         The cursor ends at the beginning of
  30.                                         the line.
  31.  
  32.                d_ereol();               Erase from the current cursor to
  33.                                         the end of the line.  Do not move
  34.                                         the cursor.
  35.  
  36.                d_nextc();               Move the cursor to the next
  37.                                         position on the current screen.  At
  38.                                         the end of a line, goes to the
  39.                                         start of a new line.  At the end of
  40.                                         the screen, scrolls the screen up 1
  41.                                         line and goes to the start of the
  42.                                         bottom line.
  43.  
  44.                d_nextl();               Moves the cursor to the start of
  45.                                         the next line on the current
  46.                                         screen.  At the end of the screen,
  47.                                         scrolls the screen up 1 line and
  48.                                         goes to the start of the bottom
  49.                                         line.
  50.  
  51.                d_putc(ch);              Writes a single character with
  52.                                         attribute d_attr on the current
  53.                                         screen at the current cursor
  54.                                         position, then moves the cursor to
  55.                                         the next position.  See d_nextc
  56.                                         above for details.
  57.  
  58.  
  59.  
  60.                                                                           1
  61.           clrscr, d_erasel, d_ereol, d_nextc, d_nextl, d_putc, d_puts
  62.  
  63.  
  64.  
  65.  
  66.  
  67.                                          C MANUAL
  68.  
  69.           RUN TIME AND I/O LIBRARY SECTION
  70.  
  71.  
  72.                i = d_puts(s);           Writes string s with attribute
  73.                                         d_attr on the current screen,
  74.                                         starting at the current cursor
  75.                                         position, then moves the cursor the
  76.                                         position following the last
  77.                                         character of s.  See d_nextc above
  78.                                         for details.
  79.  
  80.                char ch;                 Character to write.
  81.  
  82.                int i;                   Number of characters actually
  83.                                         written.
  84.  
  85.                char *s;                 Pointer to string to write.
  86.  
  87.  
  88.           DESCRIPTION
  89.  
  90.                     These functions use BIOS calls from DISPIO and the
  91.                DISP_PAR variables.  
  92.                     Except for d_attr, the DISP_PAR variables are basically
  93.                window specifications.  They are set by this module as full
  94.                screen size, but you can set them smaller in other modules. 
  95.                See the write up for d_newmode for functions which set these
  96.                variables for changes in monitor, mode or page.   
  97.                     The initial value of d_attr, the attribute for output,
  98.                is 7, which is normal reversed video.  None of the d_newmode
  99.                functions changes it.  You can change it independently.
  100.  
  101.           RETURNS
  102.  
  103.                     d_puts is limited to MAXSTRING characters, which is
  104.                originally set to 254.  It returns the number of characters
  105.                written, which lets you test whether this limit is
  106.                exceeded.  In this count, a "\n" is 1 character.
  107.  
  108.           CAUTIONS
  109.  
  110.                     Since these functions use BIOS calls, they do not
  111.                support redirection.
  112.  
  113.           LIBRARIES USED
  114.  
  115.                DISPIO
  116.  
  117.  
  118.  
  119.  
  120.                                                                           2
  121.           clrscr, d_erasel, d_ereol, d_nextc, d_nextl, d_putc, d_puts
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.                                       C MANUAL
  131.  
  132.           RUN TIME AND I/O LIBRARY SECTION
  133.  
  134.  
  135.  
  136.  
  137.           NAME
  138.  
  139.                CURPOS, WRTCHAR -- 
  140.                          BIOS macros to set cursor and write one character
  141.  
  142.           SYNOPSIS
  143.  
  144.                CURPOS(row, col);        Set cursor position to row (0-24),
  145.                                         col (0-39) or (0-79)
  146.  
  147.                WRTCHAR(ch);             Write one character at the cursor
  148.                                         position.  Does not move cursor.
  149.  
  150.                int row;                 Row to set cursor to.
  151.  
  152.                int col;                 Column to set cursor to.
  153.  
  154.                char ch;                 Character to write.
  155.  
  156.           DESCRIPTION
  157.  
  158.                     These macros simplify certain operations programmed in
  159.                dispio.  They are contained in file DISPIO.H.
  160.  
  161.           RETURNS
  162.  
  163.                     See above
  164.  
  165.           CAUTIONS
  166.  
  167.                     WRTCHAR does not move the cursor.
  168.  
  169.           LIBRARIES USED
  170.  
  171.                     DISPIO
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.                                                                           1
  184.           CURPOS, WRTCHAR
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.                                       C MANUAL
  195.  
  196.           RUN TIME AND I/O LIBRARY SECTION
  197.  
  198.  
  199.           NAME
  200.  
  201.                dispio, c40_disp, c80_disp, mono_dsp, read_loc, read_typ,
  202.                        write_ac, write_ch, writ_tty
  203.                                                        -- I/O for display
  204.  
  205.           SYNOPSIS
  206.  
  207.                c40_disp();              Change to 40 column color monitor,
  208.                                         mode 0 (40 column black and white)
  209.  
  210.                c80_disp();              Change to 80 column color monitor,
  211.                                         mode 2 (80 column black and white)
  212.  
  213.                mono_dsp();              Change to monochrome monitor, mode
  214.                                         7
  215.  
  216.                dispio (mode);           set mode                          
  217.                                                    
  218.                dispio (SET_TYPE, (start_line<<8) + end_line);
  219.                Greenleaf curtype (type, n1, n2);
  220.                                         set cursor type
  221.  
  222.                dispio (SET_CUR, page, (row<<8) + col);
  223.                Greenleaf curset (y, x, pg);
  224.                                         set cursor position
  225.  
  226.                row_col = dispio (READ_POSITION, page, &start_line, 
  227.                                  &end_line, &row, &col);
  228.                                         read cursor type and position
  229.  
  230.                type_line = read_typ (page, &start_line, &end_line);
  231.                                         read cursor type
  232.  
  233.                row_col = read_loc (page, &row, &col);
  234.                                         read cursor position
  235.  
  236.                row_col = dispio (READ_LIGHT_PEN_POSITION, &switch, &pixel,
  237.                                  &raster, &row, &col);
  238.                                         read light pen position
  239.  
  240.                dispio (SELECT_PAGE + new_page_value);
  241.                Greenleaf vpage (n);
  242.                                         select active page
  243.  
  244.                dispio (SCROLL_UP + number_of_lines, fill_attr, 
  245.                        (lrow<<8) + lcol, (rrow<<8) + rcol);
  246.  
  247.                                                                           1
  248. dispio, c40_disp, d80_disp, mono_dsp, read_loc, read_typ, write_ac,
  249.         write_ch, writ_tty
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.                                       C MANUAL
  258.  
  259.           RUN TIME AND I/O LIBRARY SECTION
  260.  
  261.  
  262.                Greenleaf upscroll (n, y1, y2, x1, x2, a);
  263.                                         scroll active page up
  264.  
  265.                dispio (SCROLL_DN + number_of_lines, fill_attr, 
  266.                        (lrow<<8) + lcol, (rrow<<8) + rcol);
  267.                Greenleaf dnscroll (n, y1, y2, x1, x2, a);
  268.                                         scroll active page down
  269.  
  270.                attr_char = dispio (READ_ATTRIBUTE_CHAR, page, 
  271.                                    &attribute, &character);
  272.                                         get attribute and character at
  273.                                         current cursor position
  274.                                         
  275.                dispio (WRITE_ATTRIBUTE_CHAR + character, 
  276.                        (page<<8) + attribute, repeat_count);
  277.                write_ac (attribute, character, page, repeat_count);
  278.                                          write attribute character
  279.  
  280.                dispio (WRITE_CHAR + character, page, repeat_count);
  281.                write_ch (character, page, repeat_count);
  282.                                         write character
  283.  
  284.                dispio (SET_PALETTE, (palette<<8) + color_value);
  285.                Greenleaf palette (id, value);
  286.                                         set palette
  287.  
  288.                dispio (WRITE_DOT + color, col, row);
  289.                Greenleaf wtdot (y, x, color);
  290.                                         write dot
  291.  
  292.                dot = dispio (READ_DOT, col, row);
  293.                                         read dot
  294.  
  295.                dispio (WRITE_TELETYPE + char, (page<<8) + color);
  296.                writ_tty (character, color, page);
  297.                                         write teletype.  Send cr/lf if
  298.                                         column 79 (0-79) is written to. 
  299.                                         Scroll screen up if row 24 (0-24)
  300.                                         of column 79 is written to.  Ctrl-g
  301.                                         beeps.  Destructive back space.
  302.  
  303.                dispio (GET_STATE, &mode, &cols, &page);
  304.                                         get state
  305.  
  306.                Except for mode, READ_TYPE and READ_LOC, the first argument
  307.                name is 256 * AH for BIOS video interrupt 10.  They are all
  308.                defined in include file DISPIO.H.
  309.  
  310.                                                                           2
  311. dispio, c40_disp, d80_disp, mono_dsp, read_loc, read_typ, write_ac,
  312.         write_ch, writ_tty
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.                                       C MANUAL
  321.  
  322.           RUN TIME AND I/O LIBRARY SECTION
  323.  
  324.  
  325.                int mode;                Defined in DISPIO.H
  326.                                              color character mode
  327.                                                   S40X25_BW      0
  328.                                                   S40X25_COLOR   1
  329.                                                   S80X25_BW      2
  330.                                                   S80X25_COLOR   3
  331.                                              color graphics
  332.                                                   MED_COLOR      4
  333.                                                   MED_BW         5
  334.                                                   HIGH_BW        6
  335.  
  336.                int start_line;          starting line for cursor < 16
  337.                int end_line;            ending line for cursor < 16
  338.  
  339.                int page;                active page, 0-3 for modes 0 and 1,
  340.                                         0 or 1 for modes 2 and 3, 0
  341.                                         otherwise
  342.  
  343.                int row;                 row, 0 is top
  344.                int col;                 column, 0 is left
  345.  
  346.                int row_col;             High byte is (char) row, low byte
  347.                                         is (char) column.  Same as
  348.                                         (row<<8)+col.
  349.  
  350.                int type_lines;          High byte is (char) start_line. 
  351.                                         Low byte is (char) end_line.  Same
  352.                                         as (start_line<<8)+end_line. 
  353.  
  354.                int switch;              active (1) / inactive (0)
  355.                int pixel;               pixel column (0-319, 639)
  356.                int raster;              raster line (0-199)
  357.  
  358.                int new_page_value;      page to select, 0-3 for modes 0 and
  359.                                         1, 0 or 1 for modes 2 or 3.
  360.  
  361.                int lrow;                upper row, 0 is top
  362.                int lcol;                left column, 0 is far left
  363.                int rrow;                lower row
  364.                int rcol;                right column
  365.                int fill_attr;           attribute to fill blank line with
  366.  
  367.                int attribute;           attribute to write
  368.                int character;           character to write
  369.  
  370.  
  371.  
  372.  
  373.                                                                           3
  374. dispio, c40_disp, d80_disp, mono_dsp, read_loc, read_typ, write_ac,
  375.         write_ch, writ_tty
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.                                       C MANUAL
  384.  
  385.           RUN TIME AND I/O LIBRARY SECTION
  386.  
  387.  
  388.                int attr_char;           High byte is attribute.  Low byte
  389.                                         is character.  Same as
  390.                                         (attribute<<8)+character.
  391.  
  392.                int repeat_count;        count of duplicate characters to
  393.                                         write
  394.  
  395.                int palette;             palette color id being set (0-127)
  396.                int color_value;         color value to be used with color
  397.                                         ID.  For write_dot, if bit 7 is
  398.                                         set, the color value is exclusive
  399.                                         or'd with the current color
  400.  
  401.                int dot;                 dot (color) at cursor
  402.  
  403.                int color;               foreground color
  404.  
  405.                int cols;                number of columns on screen
  406.  
  407.           DESCRIPTION
  408.  
  409.                Video IO by BIOS interrupt 10.  Include DISPIO.H, which also
  410.                contains some macros which use these calls.
  411.  
  412.           RETURNS
  413.  
  414.                See above.
  415.  
  416.           CAUTIONS
  417.  
  418.                Set mode 0-6 does not switch monitors.
  419.                Scroll up and scroll down need at least two rows.
  420.  
  421.           LIBRARIES USED
  422.  
  423.                None known.
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.                                                                           4
  437. dispio, c40_disp, d80_disp, mono_dsp, read_loc, read_typ, write_ac,
  438.         write_ch, writ_tty
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.                                       C MANUAL
  448.  
  449.           RUN TIME AND I/O LIBRARY SECTION
  450.  
  451.  
  452.  
  453.  
  454.           NAME
  455.  
  456.                d_newmode, d_newpage, d_toc40, d_toc80, d_tomono, set_dfull
  457.                                         - major display changes, with
  458.                                         DISP_PAR updates
  459.  
  460.           SYNOPSIS
  461.  
  462.                i = d_newmode(newmode);       Set display to mode newmode
  463.  
  464.                i = d_newpage(newpage);       Set active page to newpage
  465.  
  466.                d_toc40();                    Set 40 column color monitor,
  467.                                              mode 0
  468.  
  469.                d_toc80();                    Set 80 column color monitor,
  470.                                              mode 2
  471.  
  472.                d_tomono();                        Set mono monitor, mode 7
  473.  
  474.                set_dfull();                  Set DISP_PAR parameters
  475.                                              except d_attr to current 
  476.                                              values
  477.  
  478.                int i;                             1 if the operation is
  479.                                              valid; 0 if it is not.
  480.  
  481.                int newmode;                       0-6 for color monitor. 
  482.                                              Not used for monochrome
  483.                                              monitor.  See some IBM
  484.                                              reference.
  485.  
  486.                int newpage;                       0-7 for 40 column color
  487.                                              monitor (modes 0 and 1).  0-3
  488.                                              for 80 column color monitor
  489.                                              (modes 2 and 3).  Not used
  490.                                              otherwise.
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.                                                                           1
  501.           d_newmode, d_newpage, d_tomono, d_toc40, d_toc80, set_dfull
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.                                       C MANUAL
  512.  
  513.           RUN TIME AND I/O LIBRARY SECTION
  514.  
  515.  
  516.           DESCRIPTION
  517.  
  518.                     All these functions call the associated functions in
  519.                DISPIO, then reset the parameters for DISPIOF.  
  520.                     These parameters can be declared extern in other
  521.                modules by including file DISP_PAR.H.  If you don't use any
  522.                of these major changes in your program, then you can use the
  523.                DISPIO functions instead.
  524.                     The parameters are originally set for the monochrome
  525.                monitor.  You can change the original values by changing
  526.                some pre-processor defines in the source.
  527.  
  528.  
  529.           RETURNS
  530.  
  531.                     See above
  532.  
  533.  
  534.           CAUTIONS
  535.  
  536.                None known
  537.  
  538.           LIBRARIES USED
  539.  
  540.                DISPIO
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.                                                                           2
  565.           d_newmode, d_newpage, d_tomono, d_toc40, d_toc80, set_dfull
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.                                       C MANUAL
  577.  
  578.           RUN TIME AND I/O LIBRARY SECTION
  579.  
  580.  
  581.  
  582.  
  583.           NAME
  584.  
  585.                d_printf -- formatted write to console, no redirection
  586.  
  587.           SYNOPSIS
  588.  
  589.                d_printf(cs, ...args...);
  590.  
  591.                char *cs;                format control string
  592.                ---...args...;           list of arguments to be formatted
  593.  
  594.           DESCRIPTION
  595.  
  596.                     See Lattice manual, p. 3-30 or any reference for a
  597.                description of printf.
  598.                     This function is much faster than Lattice C's.  In
  599.                addition, it only uses _pfmt, which does no call in all the
  600.                file handling of _main.  It uses BIOS calls from DISPIO
  601.                and the DISP_PAR variables.  It wraps lines at the edge of
  602.                the current window.
  603.                     Except for d_attr, the DISP_PAR variables are basically
  604.                window specifications.  They are part of module DISPIOF  and
  605.                are set as full screen size, but you can set them smaller in
  606.                other modules.  See the write up for d_newmode for functions
  607.                which set these variables for changes in monitor, mode or
  608.                page.   
  609.                     The initial value of d_attr, the attribute for output,
  610.                is 7, which is normal reversed video.  None of the d_newmode
  611.                functions changes it.  You can change it independently.
  612.  
  613.  
  614.           RETURNS
  615.  
  616.                Nothing
  617.  
  618.           CAUTIONS
  619.  
  620.                None known.
  621.  
  622.           LIBRARIES USED
  623.  
  624.                DISPIOF, DISPIO
  625.  
  626.  
  627.  
  628.  
  629.                                                                           1
  630.           d_printf
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.                                       C MANUAL
  641.  
  642.           RUN TIME AND I/O LIBRARY SECTION
  643.  
  644.  
  645.  
  646.  
  647.           NAME
  648.  
  649.                frame -- draw a box on the screen
  650.  
  651.           SYNOPSIS
  652.  
  653.                i = frame (ulrow, ulcol, lrrow, lrcol, nlines);
  654.  
  655.                int frame                0 if good specification, 1 if bad
  656.                int ulrow                upper left hand row (0-24)
  657.                int ulcol                upper left hand column (0-79)
  658.                int lrrow                lower right hand row
  659.                int lrcol                lower right hand column
  660.                int nlines               1 for single line, 2 for double line
  661.  
  662.           DESCRIPTION
  663.  
  664.                     Functions to draw a box given the upper left hand and
  665.                the lower right hand corner.
  666.  
  667.           RETURNS
  668.  
  669.                0 if successful, -1 if invalid parameters.
  670.  
  671.           CAUTIONS
  672.  
  673.                None known.
  674.  
  675.           LIBRARIES USED
  676.  
  677.                DISPIO
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.                                                                           1
  694.           frame
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.                                          C MANUAL
  705.  
  706.           RUN TIME AND I/O LIBRARY SECTION
  707.  
  708.  
  709.  
  710.  
  711.           NAME
  712.  
  713.                hline, horline, verline, vline, _hline, _vline 
  714.                                         - draw horizontal and vertical
  715.                                         lines
  716.  
  717.           SYNOPSIS
  718.  
  719.                n = hline(row, col, ch, width);
  720.                                              Draw a horizontal line of at
  721.                                         most width characters consisting of
  722.                                         character c in the current window
  723.                                         starting at row, col.  Do nothing
  724.                                         if row, col is outside of the
  725.                                         current window.  If no errors, the
  726.                                         cursor ends after the end of the
  727.                                         line for width positive or just
  728.                                         before the beginning of the line
  729.                                         for width negative.
  730.  
  731.                n = horline(ch, width);       Draw a horizontal line of at
  732.                                         most width characters consisting of
  733.                                         character c in the current window
  734.                                         starting at the current cursor.  If
  735.                                         no errors, the cursor ends after
  736.                                         the end of the line for width
  737.                                         positive or just before the
  738.                                         beginning of the line for width
  739.                                         negative.
  740.  
  741.  
  742.                n = _hline(row, col, ch, width);
  743.                                              Draw a horizontal line of at
  744.                                         most width characters consisting of
  745.                                         character c in the current window
  746.                                         starting at row, col.  The function
  747.                                         does not check row and column for
  748.                                         validity.  If no errors, the cursor
  749.                                         ends after the end of the line for
  750.                                         width positive or just before the
  751.                                         beginning of the line for width
  752.                                         negative.
  753.  
  754.  
  755.  
  756.  
  757.                                                                           1
  758.           hline, horline, verline, vline, _hline, _vline
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.                                          C MANUAL
  767.  
  768.           RUN TIME AND I/O LIBRARY SECTION
  769.  
  770.  
  771.                n = verline(ch, length);      Draw a vertical line of at
  772.                                         most length characters consisting
  773.                                         of character c in the current
  774.                                         window starting at row, col.  Do
  775.                                         nothing if row, col is outside of
  776.                                         the current window.  If no errors,
  777.                                         the cursor ends below the end of
  778.                                         the line for length positive or
  779.                                         just above the beginning of the
  780.                                         line for length negative.
  781.  
  782.  
  783.                n = vline(row, col, ch, length);
  784.                                              Draw a vertical line of at
  785.                                         most length characters consisting
  786.                                         of character c in the current
  787.                                         window starting at the current
  788.                                         cursor.  If no errors, the cursor
  789.                                         ends below the end of the line for
  790.                                         length positive or just above the
  791.                                         beginning of the line for length
  792.                                         negative.
  793.  
  794.                n = _vline(row, col, ch, length);
  795.                                              Draw a vertical line of at
  796.                                         most length characters consisting
  797.                                         of character c in the current
  798.                                         window starting at row, col.  The
  799.                                         function does not check row and
  800.                                         column for validity.  If no errors,
  801.                                         the cursor ends below the end of
  802.                                         the line for length positive or
  803.                                         just above the beginning of the
  804.                                         line for length negative.
  805.  
  806.                int n;                        The actual number of charact-
  807.                                         ers written.  n is positive if at
  808.                                         least one character is written, 0
  809.                                         otherwise.
  810.  
  811.                int row;                      The row to start the line at. 
  812.                                         The physical top of the screen is
  813.                                         row 0.
  814.  
  815.                int col;                      The column to start the line
  816.                                         at.  The physical left hand edge of
  817.                                         the screen is column 0.
  818.  
  819.                                                                           2
  820.           hline, horline, verline, vline, _hline, _vline
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.                                          C MANUAL
  829.  
  830.           RUN TIME AND I/O LIBRARY SECTION
  831.  
  832.  
  833.                char ch;                      The character to make the line
  834.                                         from.
  835.  
  836.                int width;                    The number of characters in a
  837.                                         horizontal line.  If positive, draw
  838.                                         the line to the right.  If nega-
  839.                                         tive, draw it to the left.
  840.  
  841.                int length;                   The number of characters in a
  842.                                         vertical line.  If positive, draw
  843.                                         the line down.  If negative, draw
  844.                                         it up.
  845.  
  846.           DESCRIPTION
  847.  
  848.                     The functions draw "lines", that is, repeat one
  849.                character, on the display.  They use BIOS calls from DISPIO
  850.                and the DISP_PAR variables.  They all stop at the edge of
  851.                the current window.
  852.                     Except for d_attr, the DISP_PAR variables are basically
  853.                window specifications.  They are set by this module as full
  854.                screen size, but you can set them smaller in other modules. 
  855.                See the write up for d_newmode for functions which set these
  856.                variables for changes in monitor, mode or page.   
  857.                     The initial value of d_attr, the attribute for output,
  858.                is 7, which is normal reversed video.  None of the d_newmode
  859.                functions changes it.  You can change it independently.
  860.  
  861.           RETURNS
  862.  
  863.                     The number of characters actually written.  Note that
  864.                this is not negative, even if width or length is.  0 if no
  865.                characters written for any reason, including width or length
  866.                specified as 00 and row or col out of the current window in
  867.                hline or vline.
  868.  
  869.           CAUTIONS
  870.  
  871.                     None known.
  872.  
  873.           LIBRARIES USED
  874.  
  875.                     DISPIO
  876.  
  877.  
  878.  
  879.  
  880.  
  881.                                                                           3
  882.           hline, horline, verline, vline, _hline, _vline
  883.  
  884.  
  885.